Add regression test for PathSelector false-positive (#12617) - #12618
Closed
gnodet wants to merge 601 commits into
Closed
Add regression test for PathSelector false-positive (#12617)#12618gnodet wants to merge 601 commits into
gnodet wants to merge 601 commits into
Conversation
Bumps `mockitoVersion` from 5.22.0 to 5.23.0. Updates `org.mockito:mockito-bom` from 5.22.0 to 5.23.0 - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](mockito/mockito@v5.22.0...v5.23.0) Updates `org.mockito:mockito-junit-jupiter` from 5.22.0 to 5.23.0 - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](mockito/mockito@v5.22.0...v5.23.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-bom dependency-version: 5.23.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.mockito:mockito-junit-jupiter dependency-version: 5.23.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…1803) Bumps [org.codehaus.mojo:extra-enforcer-rules](https://github.com/mojohaus/extra-enforcer-rules) from 1.11.0 to 1.12.0. - [Release notes](https://github.com/mojohaus/extra-enforcer-rules/releases) - [Commits](mojohaus/extra-enforcer-rules@1.11.0...1.12.0) --- updated-dependencies: - dependency-name: org.codehaus.mojo:extra-enforcer-rules dependency-version: 1.12.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Instead to "smear" this feature across Maven and Resolver classes, for start let's keep it "confined" with single class: the TypeDeriver. Later we can see where to go further with it. This PR also includes bugfix, where Maven `DefaultType` implements `ArtifactType`, while in reality it does not (violates contract by returning `null` when no classifier present).
Bumps `jlineVersion` from 3.30.6 to 4.0.9. Updates `org.jline:jline-reader` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jline-style` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jline-builtins` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jline-console` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jline-console-ui` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jline-terminal` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jline-terminal-ffm` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jline-terminal-jni` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jline-native` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) Updates `org.jline:jansi-core` from 3.30.6 to 4.0.9 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@jline-3.30.6...4.0.9) --- updated-dependencies: - dependency-name: org.jline:jline-reader dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: org.jline:jline-style dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: org.jline:jline-builtins dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: org.jline:jline-console dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: org.jline:jline-console-ui dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: org.jline:jline-terminal dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: org.jline:jline-terminal-ffm dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: org.jline:jline-terminal-jni dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: org.jline:jline-native dependency-version: 4.0.9 dependency-type: direct:development update-type: version-update:semver-major - dependency-name: org.jline:jansi-core dependency-version: 4.0.9 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.3 to 5.0.4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@cdf6c1f...6682284) --- updated-dependencies: - dependency-name: actions/cache dependency-version: 5.0.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 8.0.0 to 8.0.1. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@70fc10c...3e5f45b) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
When a dependency is both a direct dep (e.g., modular-jar) and a transitive dep of a processor, ConflictResolver removes the transitive occurrence before TypeDeriver can assign processor path types. This causes the artifact to appear only on --module-path, not on --processor-module-path (maven-compiler-plugin#1039). Fix: two-phase approach without changing maven-resolver: - TypeCollector runs BEFORE ConflictResolver, records which artifacts are transitive deps of processors in the transformation context - TypeDeriver (after ConflictResolver) reads the context and sets PROCESSOR_TYPE property on surviving nodes that need both paths - DefaultDependencyResolverResult reads PROCESSOR_TYPE and adds the artifact to processor paths as well TypeCollector short-circuits when no processor-type direct deps exist, so the vast majority of builds pay zero cost.
* update pull request template with target branch guidelines What changed: - Added a comment section specifying accepted target branches. - Clarified the purpose of each target branch in the template. Why: - To provide clear guidance for contributors on where to direct their pull requests. - To streamline the contribution process and reduce confusion regarding branch usage.
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.18.7 to 1.18.8. - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](raphw/byte-buddy@byte-buddy-1.18.7...byte-buddy-1.18.8) --- updated-dependencies: - dependency-name: net.bytebuddy:byte-buddy dependency-version: 1.18.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.codehaus.woodstox:stax2-api](https://github.com/FasterXML/stax2-api) from 4.2.2 to 4.3.0. - [Commits](FasterXML/stax2-api@stax2-api-4.2.2...stax2-api-4.3.0) --- updated-dependencies: - dependency-name: org.codehaus.woodstox:stax2-api dependency-version: 4.3.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.codehaus.plexus:plexus-utils](https://github.com/codehaus-plexus/plexus-utils) from 4.0.2 to 4.0.3. - [Release notes](https://github.com/codehaus-plexus/plexus-utils/releases) - [Commits](codehaus-plexus/plexus-utils@plexus-utils-4.0.2...plexus-utils-4.0.3) --- updated-dependencies: - dependency-name: org.codehaus.plexus:plexus-utils dependency-version: 4.0.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [net.sourceforge.pmd:pmd-core](https://github.com/pmd/pmd) from 7.22.0 to 7.23.0. - [Release notes](https://github.com/pmd/pmd/releases) - [Commits](pmd/pmd@pmd_releases/7.22.0...pmd_releases/7.23.0) --- updated-dependencies: - dependency-name: net.sourceforge.pmd:pmd-core dependency-version: 7.23.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `jlineVersion` from 4.0.9 to 4.0.10. Updates `org.jline:jline-reader` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jline-style` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jline-builtins` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jline-console` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jline-console-ui` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jline-terminal` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jline-terminal-ffm` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jline-terminal-jni` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jline-native` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) Updates `org.jline:jansi-core` from 4.0.9 to 4.0.10 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.9...4.0.10) --- updated-dependencies: - dependency-name: org.jline:jline-reader dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-style dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-builtins dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-console dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-console-ui dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal-ffm dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal-jni dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-native dependency-version: 4.0.10 dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.jline:jansi-core dependency-version: 4.0.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.codehaus.plexus:plexus-utils](https://github.com/codehaus-plexus/plexus-utils) from 3.3.0 to 4.0.3. - [Release notes](https://github.com/codehaus-plexus/plexus-utils/releases) - [Commits](codehaus-plexus/plexus-utils@plexus-utils-3.3.0...plexus-utils-4.0.3) --- updated-dependencies: - dependency-name: org.codehaus.plexus:plexus-utils dependency-version: 4.0.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 7.0.0 to 7.0.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@bbbca2d...043fb46) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…11912) Bumps [eu.maveniverse.maven.plugins:bom-builder3](https://github.com/maveniverse/bom-builder-maven-plugin) from 1.3.2 to 1.3.3. - [Release notes](https://github.com/maveniverse/bom-builder-maven-plugin/releases) - [Commits](maveniverse/bom-builder-maven-plugin@release-1.3.2...release-1.3.3) --- updated-dependencies: - dependency-name: eu.maveniverse.maven.plugins:bom-builder3 dependency-version: 1.3.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `jlineVersion` from 4.0.10 to 4.0.11. Updates `org.jline:jline-reader` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jline-style` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jline-builtins` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jline-console` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jline-console-ui` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jline-terminal` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jline-terminal-ffm` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jline-terminal-jni` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jline-native` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) Updates `org.jline:jansi-core` from 4.0.10 to 4.0.11 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.10...4.0.11) --- updated-dependencies: - dependency-name: org.jline:jline-reader dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-style dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-builtins dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-console dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-console-ui dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal-ffm dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal-jni dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-native dependency-version: 4.0.11 dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.jline:jansi-core dependency-version: 4.0.11 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.4 to 5.0.5. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@6682284...27d5ce7) --- updated-dependencies: - dependency-name: actions/cache dependency-version: 5.0.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.github.siom79.japicmp:japicmp-maven-plugin](https://github.com/siom79/japicmp) from 0.25.4 to 0.25.5. - [Release notes](https://github.com/siom79/japicmp/releases) - [Changelog](https://github.com/siom79/japicmp/blob/master/release.py) - [Commits](siom79/japicmp@japicmp-base-0.25.4...japicmp-base-0.25.5) --- updated-dependencies: - dependency-name: com.github.siom79.japicmp:japicmp-maven-plugin dependency-version: 0.25.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps `jlineVersion` from 4.0.11 to 4.0.12. Updates `org.jline:jline-reader` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jline-style` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jline-builtins` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jline-console` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jline-console-ui` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jline-terminal` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jline-terminal-ffm` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jline-terminal-jni` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jline-native` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) Updates `org.jline:jansi-core` from 4.0.11 to 4.0.12 - [Release notes](https://github.com/jline/jline3/releases) - [Commits](jline/jline3@4.0.11...4.0.12) --- updated-dependencies: - dependency-name: org.jline:jline-reader dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-style dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-builtins dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-console dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-console-ui dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal-ffm dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-terminal-jni dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jline:jline-native dependency-version: 4.0.12 dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.jline:jansi-core dependency-version: 4.0.12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.google.guava:guava](https://github.com/google/guava) from 33.5.0-jre to 33.6.0-jre. - [Release notes](https://github.com/google/guava/releases) - [Commits](https://github.com/google/guava/commits) --- updated-dependencies: - dependency-name: com.google.guava:guava dependency-version: 33.6.0-jre dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Many plugins using toolchains has requirements to detect java version selected by toolchains in runtime. Expose java version in JavaToolchain can simplify plugins code.
Bumps [com.github.siom79.japicmp:japicmp-maven-plugin](https://github.com/siom79/japicmp) from 0.25.5 to 0.25.6. - [Release notes](https://github.com/siom79/japicmp/releases) - [Changelog](https://github.com/siom79/japicmp/blob/master/release.py) - [Commits](siom79/japicmp@japicmp-base-0.25.5...japicmp-base-0.25.6) --- updated-dependencies: - dependency-name: com.github.siom79.japicmp:japicmp-maven-plugin dependency-version: 0.25.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…anagement inheritance * Integration test for MNG-8432 using mixins * Use maven-it-plugin-expression instead of effective POM string matching Replace help:effective-pom + Files.readString/String.contains with the conventional maven-it-plugin-expression approach using verifier.loadProperties(), which is more robust against whitespace/formatting changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Guillaume Nodet <gnodet@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Projects like Apache Flink pin their Maven version to an exact version using ranges like [3.8.6,3.8.6] (both bounds equal, both inclusive). The existing MAVEN4_EXCLUSIVE_UPPER_BOUND pattern only matched ranges with an exclusive upper bound at 4.x (e.g. [3.8.8,4)), so exact pins and ranges with an upper bound below 4 were silently skipped. Add a new UPPER_BOUND_BELOW_MAVEN4 pattern that catches any version range whose upper bound has a major version less than 4. This covers: - Exact version pins: [3.8.6,3.8.6] -> [3.8.6,5) - Sub-4 upper bounds: [3.8.0,3.9) -> [3.8.0,5) - Unbounded lower ranges: (,3.9] -> (,5) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@9c091bb...3d3c42e) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
And add more validation to MavenValidator.
Add three regression tests for the AbstractRequestCache deadlock that caused Maven 4.0.0-rc-5 to hang on 24 out of 966 tested Apache projects. - testConcurrentBatchRequestsWithSharedKeyDoNotDeadlock: concurrent batch requests() with overlapping keys through an equals-based cache - testConcurrentBatchRequestsWithMutatingSharedKeyDoNotDeadlock: variant where equals()/hashCode() mutate during resolution, mirroring mutable RequestTrace data — verified to deadlock on pre-fix code (by @ascheman) - testSequentialBatchRequestsWithSharedKeyReuseResult: sequential calls with shared keys correctly reuse cached results Closes #12478
…ntics) (#12523) * Add failing IT for #12507 (CLI ${...} param wipe) MavenITgh12507CliParamNestedInterpolationTest shows that ${user.dir} and ${project.build.directory} inside a -D-supplied plugin parameter value are replaced with the empty string at CLI parse time (BaseParser.populateUserProperties interpolates user-specified properties with defaultsToEmpty=true against a paths-only callback), while Maven 3 resolves such expressions at mojo configuration time. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Fix #12507: dont wipe unresolved ${...} in -D values BaseParser.populateUserProperties interpolated user-specified properties with defaultsToEmpty=true against a paths-only callback, silently replacing every expression it could not resolve (system properties, project.* references) with the empty string. Pass defaultsToEmpty=false so unresolved placeholders stay literal and are evaluated later with full session/project context by the plugin parameter expression evaluator -- restoring Maven 3 semantics for values like -DaltDeploymentRepository=id::file://${project.build.directory}/x. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Update gh-11978 IT to expect Maven 3 semantics for unknown placeholders The previous assertion expected unknown ${...} in CLI -D values to be emptied, but that was an unintended side effect of #2480 (which only meant to add session.topDirectory interpolation). Maven 3 leaves unknown placeholders literal — update the assertion to match. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Gerd Aschemann <ascheman@apache.org> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* Add test for prefixed Maven elements
Bumps `resolverVersion` from 2.0.21-SNAPSHOT to 2.0.21. Updates `org.apache.maven.resolver:maven-resolver-api` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-spi` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-impl` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-util` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-named-locks` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-connector-basic` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-transport-file` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-transport-apache` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-transport-jdk` from 2.0.21-SNAPSHOT to 2.0.21 Updates `org.apache.maven.resolver:maven-resolver-transport-wagon` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) Updates `org.apache.maven.resolver:maven-resolver-tools` from 2.0.21-SNAPSHOT to 2.0.21 - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/commits/maven-resolver-2.0.21) --- updated-dependencies: - dependency-name: org.apache.maven.resolver:maven-resolver-api dependency-version: 2.0.21 dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-spi dependency-version: 2.0.21 dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-impl dependency-version: 2.0.21 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-util dependency-version: 2.0.21 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-named-locks dependency-version: 2.0.21 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-connector-basic dependency-version: 2.0.21 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-transport-file dependency-version: 2.0.21 dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-transport-apache dependency-version: 2.0.21 dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-transport-jdk dependency-version: 2.0.21 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-transport-wagon dependency-version: 2.0.21 dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.apache.maven.resolver:maven-resolver-tools dependency-version: 2.0.21 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Enables validation level choice in Maven Resolver validator. This change should go to every Maven version having `MavenValidator` (3.10, 4.0 and 4.1). Related: apache/maven-resolver#2007
On Windows, JLine handles Ctrl+C as the terminal's `INT` signal. Without an explicit handler, the standalone Maven JVM does not follow its normal interrupt termination path and Maven's shutdown hooks do not run, which can leave long-running child processes alive. This change registers an `INT` handler for Windows terminals that exits with status `130`. This triggers normal JVM shutdown and its registered cleanup hooks.
Forward port of f5426bf (maven-4.0.x) to master. Reduce allocation pressure in the Maven 4 immutable model building pipeline, measured with JFR on Apache Camel (676 modules). Overall allocation reduction: ~49% (from ~4,000 MB to ~2,054 MB). Key optimizations: - DefaultModelInterpolator: skip interpolation callback for strings without '$' via anonymous MavenTransformer subclass override - DefaultModelInterpolator: share HashSet for cycle detection across all strings in a model, avoiding ~550 allocations per module - DefaultInterpolator.unescape(): fast-path when no escape markers - DefaultModelValidator: hoist scope computation before dep loop - InternalSession.from(): instanceof fast-path before string concat - MavenProject.hashCode(): inline hash to avoid varargs Object[] - TypeRegistryAdapter: cache get() results in ConcurrentHashMap - PropertiesAsMap: eliminate Entry wrapper allocation, replace stream().filter().count() with imperative loop - ReflectionValueExtractor: make accessor prefix list a static constant instead of per-call Arrays.asList() - transformer.vm: add null-check in transform(String) Closes #12553
Upgrade logback-classic dependency to version 1.6.0, which removes deprecated APIs and bumps SLF4J to 2.0.18. Closes #12525
…ity issues Add 4 new mvnup strategies addressing Maven 4 compatibility issues from the maven4-testing project: update compiler-plugin min to 3.11.0 for ErrorProne, detect and upgrade old 4.x alpha/beta/RC plugin versions, migrate deprecated org.scala-tools:maven-scala-plugin to net.alchim31.maven:scala-maven-plugin, and add DuplicateElementStrategy to remove duplicate POM elements rejected by Maven 4's stricter parser. Refactors PluginUpgradeStrategy to derive its map from the PLUGIN_UPGRADES list instead of maintaining a separate hand-coded map. Closes #12532
…rtifactResolverResult Plugins that resolve dependencies (cyclonedx-maven-plugin, camel-spring-boot-generator) threw IllegalArgumentException because ArtifactResult.NO_REPOSITORY sentinel leaked as a null key in the exceptions map exposed through ResultItem.getExceptions(). Filter out NO_REPOSITORY entries from the mapped exceptions while preserving all exceptions in a flat allExceptions list so isMissing() still considers them. Also fixes vacuous-truth bug where an empty exception list was treated as "all exceptions are ArtifactNotFoundException". Closes #12533
Corrects the documentation for MAVEN_CONSUMER_POM_FLATTEN: the default is false (preserve dependency management), not true (flatten). Closes #12471
Updates the shared release-drafter workflow reference from v4 to v5. Underlying change: release-drafter 6.4.0 → 7.6.0, removes unsupported initial-commits-since option. Closes #12488
…ions Coordinate ids (groupId, artifactId) and versions equal to '.' or '..' pass character validation but become path-traversal segments in the local repository layout. Both the maven-impl and compat maven-model-builder validators now reject these values in id checks, wildcard-id checks, and version checks. Tests added for both modules. Closes #12410
* Convert paths for MSYS2 and jvm.config placeholders in bin/mvn The launcher already converted POSIX paths to their native Windows form for Cygwin and MinGW (GH-7958), but a few paths still reached the JVM in a mangled or mixed form: * uname(1) reports MSYS_NT-* for the MSYS2 shell, which did not match the MINGW* pattern, so no conversion happened at all there. The MSYS2 argument conversion then rewrote the POSIX path into the mixed form D:/a/... instead of D:\a\... * ${MAVEN_PROJECTBASEDIR} placeholders in .mvn/jvm.config were expanded with the POSIX path, since JvmConfigParser was invoked before the conversion took place. The base directory is now converted upfront and both representations are kept: the POSIX one to locate jvm.config from the shell, the native one for everything handed over to the JVM. * -Dlibrary.jline.path was built by appending /lib/jline-native to the already converted MAVEN_HOME, producing C:\maven/lib/jline-native. It is now converted on its own. Values holding a path are printed with printf rather than echo, including the debug logging: several POSIX shells (dash and the other Almquist derivatives commonly installed as /bin/sh) expand backslash escapes in echo, so C:\tmp\build was emitted with a tab in place of \t. The conversion is also guarded, so a missing cygpath(1) warns and falls back to POSIX paths rather than passing empty paths to the JVM. A shell test covering all of the above is added and wired into the build through exec-maven-plugin, so mvn verify runs it. It stubs uname, cygpath and java and runs the launcher with a PATH holding nothing but those stubs, so the Windows-only code paths are exercised identically on every platform; keeping the ambient PATH would let the genuine cygpath(1) of an actual Cygwin/MSYS2 installation be picked up and the missing-cygpath fallback would never be exercised there. Related to GH-12537 * Fix #12537: normalize temp dir path in test-mvn-path-conversion.sh On macOS the $TMPDIR variable ends with a trailing slash, so mktemp -d "${TMPDIR}/mvn-path-conversion.XXXXXX" produces a path containing a double slash (e.g. .../T//mvn-path-conversion.XNBzZw). The pwd(1) calls inside the mvn launcher collapse the double slash, causing all 22 path assertions to fail on macOS CI runners. Resolve the work directory through cd/pwd right after creation so the test's reference paths stay in sync with the launcher output. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Guillaume Nodet <gnodet@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…cyManagement Version and groupId inference in transformFileToRaw was only applied to direct dependencies but not to dependencies declared in <dependencyManagement>. This caused installed consumer BOMs to be missing version tags for reactor sibling modules, making the BOM unusable by downstream consumers. Extract the inference loop into a reusable inferDependencies helper and apply it to both <dependencies> and <dependencyManagement>. Closes #11147 Co-authored-by: Hiteshsai007 <hiteshsainiki007@gmail.com>
…on based on PATH * [MNG-8768] Add executable() function for conditional profile activation based on PATH Implements MNG-8768 (GitHub #10115): adds an executable(name_or_path) function to Maven's condition-based profile activation DSL. The function evaluates to true if the given executable name can be found in the system PATH, or if an absolute/relative path points directly to an executable file. Use-case (from the issue): auto-detect the presence of x86_64-linux-musl-gcc when building GraalVM native images with the native-maven-plugin, and conditionally add --static --libc=musl to the build options only when the compiler wrapper is available on the current machine. Example pom.xml usage: <activation> <condition>executable('x86_64-linux-musl-gcc')</condition> </activation> Implementation details: - ConditionFunctions.executable() delegates to new ExecutableFinder helper - ExecutableFinder splits the env.PATH system property and probes each directory; on Windows it also tries .exe / .cmd / .bat / .com extensions - Absolute/relative paths (containing a path separator) are checked directly without PATH traversal - PATH is sourced from ProfileActivationContext.getSystemProperty('env.PATH') (Maven's normalised env var key), with a System.getenv('PATH') fallback Tests: - 5 new end-to-end tests in ConditionProfileActivatorTest (MNG-8768) - 12 new unit tests in ExecutableFinderTest covering PATH search, Windows extension probing, absolute paths, non-executable files, and empty PATH * Address review comments for executable() function - Add a warning in DefaultModelValidator if executable() condition is used, noting reproducibility issues - Add a Javadoc warning to ConditionFunctions.executable() - Remove System.getenv('PATH') fallback in ExecutableFinder - Fix OS checking to use ProfileActivationContext instead of System.getProperty - Convert Paths.get to Path.of - Remove dead code (candidateNames) - Update tests: remove fallback test, use @DisabledOnOs(OS.WINDOWS) for OS-specific test * Address second review: remove accidental file, fix Windows coverage, fix direct-path comment - Remove accidental your-database.db from repo root - Remove .replace('\\', '/') from ConditionProfileActivatorTest.testExecutableWithAbsolutePath() - Fix isExecutableFile() comment: no longer claims caller always filters by extension - Direct paths on Windows now also probe .exe/.cmd/.bat/.com extensions - Add contextWithPathAndOs() test helper that sets os.name in context - Add 3 new Windows-simulated tests: - findsExecutableWithWindowsExtensionInPath: PATH search finds my-tool.exe for 'my-tool' - findsExecutableWithWindowsExtensionByDirectPath: direct path probes .exe - doesNotAppendExtensionOnNonWindows: confirms no extension probing on Linux * Address minor nit: deduplicate contextWithPath test helpers
(cherry picked from commit 9cf85cf) # Conflicts: # api/maven-api-plugin/src/main/mdo/plugin.mdo
…ering (#12554) * Bump Sisu to 1.1.0 and fix extension realm visibility for JSR330 filtering Sisu 1.1.0 adds JSR330 bean visibility filtering based on ClassRealm hierarchy (jsr330ComponentVisibilityFollowsPlexusVisibility, on by default). When TCCL is an extension realm during lifecycle callbacks, Sisu's FilteredBeans calls RealmManager.computeVisibleNames() which traverses parent and import realms via BFS. Extension realms have plexus.core as parent but beans discovered in the container are sourced from the maven.ext realm. Since extension realms had no import relationship to maven.ext, container-sourced beans were incorrectly filtered out. This caused failures with extensions like Mimir that register lifecycle listeners: when the listener's callback triggered a Sisu dynamic map access (e.g., NameMapper resolution), the beans were invisible from the extension's realm, resulting in "Unknown NameMapper name" errors. The fix adds a reverse import from each extension realm to the container realm (maven.ext), following the same pattern already used for the forward direction (maven.ext imports from extension realms). This makes maven.ext reachable in Sisu's visibility BFS traversal, so container-sourced beans remain visible regardless of TCCL context. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add IT for GH-12522: non-extension plugin JSR330 component leak Regression test verifying that plugins NOT marked with <extensions>true</extensions> do not cause build failures when they ship JSR330 components whose internal dependencies cannot be resolved in Maven's container. Uses tycho-bnd-plugin as the reproducer. With Sisu 1.1.0's jsr330ComponentVisibilityFollowsPlexusVisibility, non-extension plugin components are filtered out of container-realm JSR330 lookups, preventing the provisioning error. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Skip GH-12522 IT on JDK < 21 (tycho-bnd-plugin 5.0.3 requires Java 21) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The condition Files.isRegularFile(source) in DefaultTransport.put() was inverted — it threw when the file existed and silently accepted non-existent files, breaking putBytes() and putString() transitively. Added the missing negation and a new DefaultTransportTest covering non-existent file rejection, valid file acceptance, and the putBytes() delegation chain. Closes #12612
Cherry-pick the fix from PR #12617 (by Martin Desruisseaux) which removes an optimization that skipped path relativization when all patterns started with "**". This optimization produced false positives when the base directory path itself contained a segment matching the pattern (e.g., base directory "something/target/test-classes" with pattern "**/test-classes/**" would match every file under the base directory). Add a regression test that constructs the exact false-positive scenario described in the PR to prevent reintroduction of the optimization. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Author
|
Closing — will recreate with the correct base (on top of PR #12617). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PathSelectorthat skipped path relativization when all patterns started with****pattern (e.g., base =something/target/test-classeswith pattern**/test-classes/**), files outside the matching child directory were incorrectly matchedThe test verifies:
test-classes/child directory is correctly matchedother/sibling directory is not falsely matched just because the base directory path containstest-classesTest plan
PathSelectorTest.testNoFalsePositiveWhenBaseDirectoryMatchesPatternfails without the fix (confirmed false positive)PathSelectorTesttests pass with the fix applied🤖 Generated with Claude Code